﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataAccess;
using Support.Exceptions;
using Support.DTO;

namespace Business
{
    public class Afiliado
    {
        #region properties

        string Transferido
        {
            get;
            set;
        }
        string NroInternoTitular
        {
            get;
            set;
        }
        string NroInternoFamiliar
        {
            get;
            set;
        }
        string NroAfiliadoTitular
        {
            get;
            set;
        }
        string nroAfiliadoFamiliar
        {
            get;
            set;
        }
        string Nombre
        {
            get;
            set;
        }
        string Apellido
        {
            get;
            set;
        }
        string Cuil
        {
            get;
            set;
        }
        string Nacionalidad
        {
            get;
            set;
        }
        string Sexo
        {
            get;
            set;
        }
        string EstadoCivil
        {
            get;
            set;
        }
        string Discapacitado
        {
            get;
            set;
        }
        string NivelDiscapacidad
        {
            get;
            set;
        }
        string Estudia
        {
            get;
            set;
        }
        string NivelEstudio
        {
            get;
            set;
        }
        string Trabaja
        {
            get;
            set;
        }
        string Censado
        {
            get;
            set;
        }
        string Parentesco
        {
            get;
            set;
        }
        string Delegacion
        {
            get;
            set;
        }
        string Filial
        {
            get;
            set;
        }
        string Calle
        {
            get;
            set;
        }
        string CalleNumero
        {
            get;
            set;
        }
        string Piso
        {
            get;
            set;
        }
        string Departamento
        {
            get;
            set;
        }
        string Pallier
        {
            get;
            set;
        }
        string Telefono
        {
            get;
            set;
        }
        string TelefonoAuxiliar
        {
            get;
            set;
        }
        string Provincia
        {
            get;
            set;
        }
        string Localidad
        {
            get;
            set;
        }
        string CodigoPostal
        {
            get;
            set;
        }
        string TipoDocumento
        {
            get;
            set;
        }
        string NumeroDocumento
        {
            get;
            set;
        }
        string EntidadEmisora
        {
            get;
            set;
        }
        string CategoriaTitular
        {
            get;
            set;
        }
        string EmpresaId
        {
            get;
            set;
        }
        string FechaIngreso
        {
            get;
            set;
        }

        #endregion

        public static int GuardarAfiliado(AfiliadoDTO afiliado)
        {
            AfiliadoDAL afiliadoDAL = new AfiliadoDAL();
            try
            {
                return afiliadoDAL.GuardarAfiliado(afiliado);
            }
            catch (Exception ex)
            {
                throw new BusinessException(string.Format("Error al guardar el afiliado"), ex);
            }
        }

        
        public static List<AfiliadoDTO> GetAfiliado(string nombre, string apellido, string nroDocumento, string nroInterno)
        {
            try
            {
                AfiliadoDAL afiliadoDAL = new AfiliadoDAL();
                return afiliadoDAL.GetAfiliado(nombre, apellido, nroDocumento, nroInterno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static int UpdateAfiliado(AfiliadoDTO afiliado)
        {
            try
            {
                AfiliadoDAL afiliadoDAL = new AfiliadoDAL();
                return afiliadoDAL.UpdateAfiliado(afiliado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            
        }
    }
}
